import 'package:flutter/foundation.dart';

/// 日志过滤器 - 用于过滤掉不必要的系统日志
class LogFilter {
  static bool _isInitialized = false;

  /// 初始化日志过滤器
  static void init() {
    if (_isInitialized) return;
    _isInitialized = true;

    if (kDebugMode) {
      // 重写Flutter的错误处理，过滤EGL相关日志
      FlutterError.onError = (FlutterErrorDetails details) {
        final errorString = details.toString();
        
        // 过滤掉EGL相关的错误和警告
        if (_shouldFilterLog(errorString)) {
          return; // 直接返回，不显示这些日志
        }
        
        // 显示其他错误
        FlutterError.presentError(details);
      };
    }
  }

  /// 判断是否应该过滤掉某个日志
  static bool _shouldFilterLog(String log) {
    final lowerLog = log.toLowerCase();
    
    // 过滤EGL相关日志
    if (lowerLog.contains('egl') || 
        lowerLog.contains('app_time_stats') ||
        lowerLog.contains('windowonbackdispatcher') ||
        lowerLog.contains('gc histogram') ||
        lowerLog.contains('reducing the number')) {
      return true;
    }
    
    return false;
  }

  /// 自定义打印函数，可以过滤日志
  static void print(String message) {
    if (!_shouldFilterLog(message)) {
      debugPrint(message);
    }
  }

  /// 打印调试信息（不会被过滤）
  static void debug(String message) {
    if (kDebugMode) {
      debugPrint('🐛 DEBUG: $message');
    }
  }

  /// 打印错误信息（不会被过滤）
  static void error(String message) {
    debugPrint('❌ ERROR: $message');
  }

  /// 打印成功信息（不会被过滤）
  static void success(String message) {
    debugPrint('✅ SUCCESS: $message');
  }

  /// 打印警告信息（不会被过滤）
  static void warning(String message) {
    debugPrint('⚠️ WARNING: $message');
  }
}
